// 从vue中解析createApp函数
import {createApp, nextTick} from 'vue';
// 引入App组件
import App from './App.vue';
// 引入router
import router from "./router";
// 引入store
import store from "./store";
// 引入封装好的axios
import { get,post } from './request';
// 引入element-plus
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
// 初始化样式
import './assets/css/reset.css';

import * as ElementPlusIconsVue from '@element-plus/icons-vue';
// 阿里矢量图标
// import './assets/font/footer/iconfont.css';
// import './assets/font/top/iconfont.css';
// import './assets/font/homeAll/iconfont.css';


// 引入图片懒加载文件
import imgLazy from './hooks/lazyload';

// 返回vue实例
const app =createApp(App);

for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component)
}

// 在vue3原型上挂载axios
// app.config.globalProperties.$axios = axios;
app.config.globalProperties.$get = get;
app.config.globalProperties.$post = post;

// 注册一个全局自定义指令 `v-focus`
app.directive('focus', (el) => {
    setTimeout(()=>{
        el.focus();
    },1000)
})

// 使用路由
app.use(router);
// 使用store
app.use(store);
// 使用ElementPlus
app.use(ElementPlus);

// 挂载app元素
app.mount('#app');
// 全局注册图片懒加载
imgLazy(app);
